package practice;

import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: fzykd
 * Date: 2022-11-11
 * Time: 20:25
 */

public class SelectSort {
    public static void main(String[] args) {
        int[] elem = {101,34,119,1};

        //选择排序
        //第一次选择 a[0] ~ a[n-1] 中选一个最小值 与a[0] 交换
        //第二次选择 a[1] ~ a[n-1] 中选一个最小值 与a[1] 交换 以此类推
        //首先 涉及交换 其次 是涉及到下标
        //外层循环定义本次循环的最小值 内循环 比较剩下元素的最小值 然后交换


        for (int i = 0; i < elem.length-1; i++) {
            //定义的是最小值的下标
            int minIndex = i;
            //比较的是全部元素 elem.length 如果是交换 就要考虑-1 （越界的问题）
            for (int j = i+1; j <elem.length ; j++) {
                if (elem[minIndex] > elem[j]){
                    minIndex = j;
                }
            }
            swap(elem,i,minIndex);
        }
        System.out.println(Arrays.toString(elem));
    }

    private static void swap(int[] elem, int i, int j) {
        int tmp = elem[i];
        elem[i] = elem[j];
        elem[j] = tmp;
    }
}
